a11y: Add missing fallback for accessible-role getter
authorEmmanuele Bassi <ebassi@gnome.org>
Wed, 11 Nov 2020 19:36:38 +0000 (19:36 +0000)
committerEmmanuele Bassi <ebassi@gnome.org>
Wed, 11 Nov 2020 19:45:43 +0000 (19:45 +0000)
If the per-instance accessible role is unset, use the class role.

gtk/gtkwidget.c

index 7c848040e3d2be504e3c47475c3b613b2d5a84ff..4199ffd52db35f8ca108bef902342b3670c14a4d 100644 (file)
@@ -12607,11 +12607,17 @@ gtk_widget_get_accessible_role (GtkWidget *self)
 {
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (self);
   GtkATContext *context = gtk_accessible_get_at_context (GTK_ACCESSIBLE (self));
+  GtkWidgetClassPrivate *class_priv;
 
   if (context != NULL && gtk_at_context_is_realized (context))
     return gtk_at_context_get_accessible_role (context);
 
-  return priv->accessible_role;
+  if (priv->accessible_role != GTK_ACCESSIBLE_ROLE_WIDGET)
+    return priv->accessible_role;
+
+  class_priv = GTK_WIDGET_GET_CLASS (self)->priv;
+
+  return class_priv->accessible_role;
 }
 
 /**